public class Solution299 {
    public String getHint(String secret, String guess) {
        int bull = 0, cow = 0;
        int[] map1 = new int[10];
        int[] map2 = new int[10];
        for (int i = 0; i < secret.length(); i++) {
            map1[secret.charAt(i) - '0']++;
        }
        for (int i = 0; i < guess.length(); i++) {
            map2[guess.charAt(i) - '0']++;
        }
        for (int i = 0; i < secret.length(); i++) {
            char c = secret.charAt(i);
            if (i < guess.length() && guess.charAt(i) == c) {
                bull++;
                map1[c - '0']--;
                map2[c - '0']--;
            }
        }
        for (int i = 0; i < guess.length(); i++) {
            char c = guess.charAt(i);
            if (map1[c - '0'] > 0 && map2[c - '0'] > 0) {
                cow++;
                map1[c - '0']--;
                map2[c - '0']--;
            }
        }
        return String.valueOf(bull) + 'A' + cow + 'B';
    }
}
